package com.ruoyi.a2.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.a2.handle.PgGeometry84TypeHandler;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.enums.ActivityTypeEnum;
import com.ruoyi.common.enums.CleanStatusEnum;
import com.ruoyi.common.enums.CommonOKNOEnum;
import lombok.Data;

import java.util.Date;

/**
 * ADS-B动态信息对象 ads_dynamics_info
 *
 * @author ruoyi
 * @date 2025-02-20
 */
@Data
public class AdsDynamicsInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    @TableId(type = IdType.AUTO)
    private Long id;

    /** ICAO */
    @Excel(name = "ICAO")
    private String icao;

    /** 状态(1:进港 2:离港 3:正常 4:停靠 5:加速 6:减速 7:失联 8:追踪中断) */
    @Excel(name = "状态(1:进港 2:离港 3:正常 4:停靠 5:加速 6:减速 7:失联 8:追踪中断)")
    private Integer status = ActivityTypeEnum.DATA_3.getCode();

    /** 基准时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date baseTime;

    /** 经度 */
    @Excel(name = "经度")
    private Double lon;

    /** 纬度 */
    @Excel(name = "纬度")
    private Double lat;

    /** 地理坐标 */
    @Excel(name = "地理坐标")
    @TableField(typeHandler = PgGeometry84TypeHandler.class)
    private String geom;

    /** 航速 */
    @Excel(name = "航速")
    private Double speed;

    /** 航向 */
    @Excel(name = "航向")
    private Double way;

    /** 是否已更改状态(0:否 1:是) */
    @Excel(name = "是否已更改状态(0:否 1:是)")
    private Integer updateStatus = CommonOKNOEnum.NO.getCode();

    /** 清洗状态(0:正常 1:异常值剔除 2:空值填充 3:时空重采样) */
    @Excel(name = "清洗状态(0:正常 1:异常值剔除 2:空值填充 3:时空重采样)")
    private Integer cleanStatus = CleanStatusEnum.DATA_0.getCode();

    /** 是否完成异常值剔除(0:否 1:是) */
    @Excel(name = "是否完成异常值剔除(0:否 1:是)")
    private Integer handleCleanStatus1 = CommonOKNOEnum.NO.getCode();

    /** 是否完成空值填充(0:否 1:是) */
    @Excel(name = "是否完成空值填充(0:否 1:是)")
    private Integer handleCleanStatus2 = CommonOKNOEnum.NO.getCode();

    /** 是否完成时空重采样(0:否 1:是) */
    @Excel(name = "是否完成时空重采样(0:否 1:是)")
    private Integer handleCleanStatus3 = CommonOKNOEnum.NO.getCode();

    /** 读取状态(0:否 1:是) */
    @Excel(name = "读取状态(0:否 1:是)")
    private Integer readStatus = CommonOKNOEnum.NO.getCode();

    /** 几何高度 */
    @Excel(name = "几何高度")
    private Double geoHeight;

    /** 气压高度 */
    @Excel(name = "气压高度")
    private Double pressureHeight;

    /** 马赫数 */
    @Excel(name = "马赫数")
    private Double machNumber;

    /** 轨边变化率 */
    @Excel(name = "轨边变化率")
    private Double railChange;

    /** 滚动角度 */
    @Excel(name = "滚动角度")
    private Double rollAngle;

    /** 航向 */
    @Excel(name = "航向")
    private Double aircraftWay;

    /** 从真北航向 */
    @Excel(name = "从真北航向")
    private Double headingNorth;

    /** 几何高度变化率 */
    @Excel(name = "几何高度变化率")
    private Double geoChange;

    /** 上次更新位置 */
    @Excel(name = "上次更新位置")
    private String proirPosition;

    /** 最近平均信号功率 */
    @Excel(name = "最近平均信号功率")
    private Double averageSignal;

    /** 最后位置 */
    @Excel(name = "最后位置")
    private String lastPosition;

    /** 粗略飞机位置 */
    @Excel(name = "粗略飞机位置")
    private String roughPosition;

    /** 模式A代码 */
    @Excel(name = "模式A代码")
    private String modeA;

    /** 紧急/优先状态 */
    @Excel(name = "紧急/优先状态")
    private String firstStatus;

    /** 自动化模式 */
    @Excel(name = "自动化模式")
    private String autoMode;

    /** 航班状态警报位 */
    @Excel(name = "航班状态警报位")
    private String alarmStatus;

    /** 收到的S模式消息总数 */
    @Excel(name = "收到的S模式消息总数")
    private Long sCount;

    /** 最后一次收到的消息 */
    @Excel(name = "最后一次收到的消息")
    private String lastInfo;

    /** 指示空气速度 */
    @Excel(name = "指示空气速度")
    private Double airIndicate;

    /** 真实空气速度 */
    @Excel(name = "真实空气速度")
    private Double airReal;

    /** 风向 */
    @Excel(name = "风向")
    private Double windDirection;

    /** 风速 */
    @Excel(name = "风速")
    private Double windSpeed;

    /** 外部气温 */
    @Excel(name = "外部气温")
    private Double temperatureExternal;

    /** 静态气温 */
    @Excel(name = "静态气温")
    private Double temperatureStatic;

    /** 总气温 */
    @Excel(name = "总气温")
    private Double temperatureSum;


}
